package com.project.easy.common.util.filter;

import com.project.easy.common.util.dto.FilterDto;
import com.project.easy.common.util.exception.filter.FilterException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* @Author: yangchao.cool
* @Date: 2022/7/13 10:13s
 * @param <T> 参数
 * Description: 过滤器
*/
public interface Filter<T extends FilterDto> {
    /**
     * 初始化
     * @throws FilterException 过滤器异常
     */
    public  void init() throws  FilterException;
    /**
     * 过滤器执行方法
     * @param request 请求
     * @param  response 响应
     * @param param 参数
     * @return 返回结果
     */
    public T doFilter(HttpServletRequest request, HttpServletResponse response, T param);
    /**
     * 销毁方法
     * @throws FilterException 过滤器异常
     */
    public  void destroy() throws FilterException;
}
